Conventional software testing tools provide for automating the testing of a software application or system by simulating input into a graphical user interface (GUI) of the software application. The simulated input is received by the software application being tested and the testing tool captures the response of the software application by information returned to the GUI. The GUI for a software application is commonly considered the front end of the system. Such tools that provide front end testing of software applications typically do not address testing of the transactions taking place in the backend of the system. The backend of a software application can be considered the elements of the system that are not presented to a user of the system. For software applications that are primarily driven by events, front end testing tools provide limited use in evaluating the proper functioning of the software application. An event, in relation to this application, is a transaction related to a software system other than receiving input from a user or the transmission of user output.
Typically, testing the backend functionality of a system involves multiple steps. A non-exclusive list of steps typically performed for backend testing includes: setting up the testing environment, deploying the software, creating test cases, the execution of test cases, regression/stress testing and evaluating the results of the test cases and the regression/stress testing. Typically, the evaluation of the results is performed by testers manually searching the software application logs for the results. All of these steps are typically performed manually or with the use of custom written scripts. The manual operation of these steps and their ad hoc nature requires organizations that test software applications to spend considerable time and effort performing the manual steps and writing scripts each time it is necessary to test a software application.